Method for improving discovery of preferred mobile computing locations

ABSTRACT

A method for improving discovery of preferred mobile computing locations includes monitoring sensor data corresponding to a mobile computing device (MCD) and monitoring non-GPS network data implemented by the mobile computing device. Additionally, the method determines whether sensor data and non-GPS network data indicate that the mobile computing device is stationary within a cell site as well as scanning any network that the mobile computing device is electronically linked to. In short, the method discovers an improved preferred mobile computing location based on the sensor data and non-GPS network data that provide reliable information that the mobile computing device is stationary within the cell site. The sensor data and non-GPS network data are converged when several corresponding scans produce overlapping results.

CROSS REFERENCE TO RELATED APPLICATIONS

The present application is a divisional of U.S. patent application Ser.No. 13/118,910, entitled “A Method for Improving Discovery of PreferredMobile Computing Locations”, filed May 31, 2011, which is related toU.S. patent application Ser. No. 13/103,377, filed May 9, 2011, andwhose contents are incorporated by reference in their entirety.

FIELD OF INVENTION

This invention is directed to mobile computing devices and their users.More specifically, the invention is directed to enabling the mobilecomputing device to more closely align with a particular user'spreferences.

BACKGROUND

There is great interest in adjusting behavior of a mobile computingdevice (MCD) to suit or benefit the user of the MCD according to thatuser's personal taste. For example, the behavior of a MCD can bemodified by adjusting associated ringers or ringtones, turning on itsWi-Fi communication in one location versus another location (e.g., homeversus work locations), as well as affecting accompanying Bluetooth andGPS operation. All of these adjustments are usually done manually by theuser and must be remembered to do so.

Some solutions involve collecting locations based on GPS locations.However, GPS locations may not always be available, especially inside abuilding. Additionally, using GPS places a significant power drain onthe battery of a MCD.

BRIEF DESCRIPTION OF DRAWINGS

FIG. 1 illustrates a plurality of meaningful locations to an exemplaryuser of a MCD.

FIG. 2 illustrates a portion of an exemplary database.

FIG. 3 illustrates an exemplary mobile phone located between twooverlapping cellular areas.

FIG. 4 illustrates an exemplary flowchart for handling the overlappingcellular condition of FIG. 3.

FIG. 5 illustrates the situation when WiFi is used as a Network Locationprovider.

FIG. 6 illustrates the situation when the same location gets differentsensorial data at different times.

FIG. 7 illustrates an exemplary timing diagram.

DETAILED DESCRIPTION

The following detailed description is merely illustrative in nature andis not intended to limit the embodiments of the subject matter or theapplication and uses of such embodiments. As used herein, the word“exemplary” means “serving as an example, instance, or illustration.”Any implementation described herein as exemplary is not necessarily tobe construed as preferred or advantageous over other implementations.Furthermore, there is no intention to be bound by any expressed orimplied theory presented in the preceding technical field, background,brief summary or the following detailed description.

Before describing in detail embodiments that are in accordance with thepresent invention, it should be observed that the embodiments resideprimarily in combinations of method steps and device components relatedto associating objects in an electronic device. Accordingly, the devicecomponents and method steps have been represented where appropriate byconventional symbols in the drawings, showing only those specificdetails that are pertinent to understanding the embodiments of thepresent invention so as not to obscure the disclosure with details thatwill be readily apparent to those of ordinary skill in the art havingthe benefit of the description herein.

In this document, relational terms such as first and second, top andbottom, and the like may be used solely to distinguish one entity oraction from another entity or action without necessarily requiring orimplying any actual such relationship or order between such entities oractions. The terms “comprises,” “comprising,” or any other variationthereof, are intended to cover a non-exclusive inclusion, such that aprocess, method, article, or apparatus that comprises a list of elementsdoes not include only those elements but may include other elements notexpressly listed or inherent to such process, method, article, orapparatus. An element proceeded by “comprises . . . a” does not, withoutmore constraints, preclude the existence of additional identicalelements in the method, or device that comprises the element. Also,throughout this specification the term “key” has the broad meaning ofany key, button or actuator having a dedicated, variable or programmablefunction that is actuated by a user.

Techniques and technologies may be described herein in terms offunctional and/or logical block components, and with reference tosymbolic representations of operations, processing tasks, and functionsthat may be performed by various computing components or devices. Suchoperations, tasks, and functions are sometimes referred to as beingcomputer-executed, computerized, software-implemented, orcomputer-implemented. In practice, one or more processor devices cancarry out the described operations, tasks, and functions, and thevarious block components shown in the figures may be realized by anynumber of hardware, software, and/or firmware components configured toperform the specified functions. For example, an embodiment of a systemor a component may employ various integrated circuit components, e.g.,memory elements, digital signal processing elements, logic elements,look-up tables, or the like, which may carry out a variety of functionsunder the control of one or more microprocessors or other controldevices. For the sake of brevity, conventional techniques related tosignal processing, data transmission, signaling, network control, andother functional aspects of the systems (and the individual operatingcomponents of the systems) may not be described in detail herein.Furthermore, the connecting lines shown in the various figures containedherein are intended to represent exemplary functional relationshipsand/or physical couplings between the various elements. It should benoted that many alternative or additional functional relationships orphysical connections may be present in an embodiment of the subjectmatter.

A method for discovering preferred mobile computing locations includesmonitoring amount of time a mobile computing device is located within acell tower region; and monitoring amount of time a mobile computingdevice is located within a Wi-Fi region. Afterwards, the method collectsmobile computing device location data corresponding to the monitoring ofcell tower region and Wi-Fi region; and analyzes the mobile computingdevice location data to determine amount of time and frequency of visitsthat the mobile computing device is in the cell tower and Wi-Fi regions.The above steps can be controlled via a processor within the mobilecomputing device such that a preferred mobile computing location isdiscovered for a user of the mobile computing device. Cell ID and Wi-Finetwork ID are employed herein and are described by way of example,however, it is also contemplated that physical sensors associated withthe MCD may also be monitored to determine meaningful locations of theuser. For example, infrared sensors, integrated Bluetooth systems,retina-scanning devices, and fingerprint devices. Just as important canbe certain characteristics about the mobile computing device itself. Forexample, usage characteristics (e.g., phone calls, emails, text, gameplaying, remaining battery level, etc.) and mobile computing applicationselections at certain locations versus different usage characteristicsand application selections at other locations. Consequently, meaningfulor preferred locations can be determined without using battery draininggeographical location technology, such as global positioning system(GPS), or Global Navigation Satellite System (GLONASS), or BeidouSatellite Navigation System.

An exemplary MCD can operate under a set of programmable instructions. Aset of instructions, when executed, may cause the MCD to perform any oneor more of the methodologies described herein. In some embodiments, theMCD operates as a standalone device. In some embodiments, the MCD may beconnected (e.g., using a network) to other MCDs. In a networkeddeployment, the MCD may operate in the capacity of a server or a clientuser MCD in a server-client user network environment, or as a peermachine in server-client user network environment, or as a peer machinein a peer-to-peer (or distributed) network environment.

The MCD may comprise a server computer, a client user computer, apersonal computer (PC), a tablet PC, a personal digital assistant, aportable phone on a wireless or cellular network, a laptop computer, asmartphone either alone or combined with a display device, a controlsystem, a network router, or any machine capable of executing a set ofinstructions (sequential or otherwise) that specify actions to be takenby that machine, not to mention a mobile server. It will be understoodby those ordinarily skilled in the art of mobile computing andcommunication devices and associated networks, either wired or wirelessthat the mobile computing device described herein includes broadly anyelectronic device that provides voice, video, and data communication.Further, while a single MCD may be illustrated, the term “mobilecomputing device” shall also be taken to include any collection ofmobile computing devices that individually or jointly executed a set (ormultiple sets) of instructions to perform any one or more methodologiesdiscussed herein.

An exemplary method for improving discovery of preferred mobilecomputing locations can include monitoring sensor data corresponding toa mobile computing device (MCD) and monitoring non-GPS network dataimplemented by the mobile computing device. Additionally, the exemplarymethod determines whether sensor data and non-GPS network data indicatethat the mobile computing device is stationary within a cell site andscans any network that the mobile computing device is electronicallylinked to. In short, the method discovers an improved preferred mobilecomputing location based on the sensor data and non-GPS network datathat provide reliable information that the mobile computing device isstationary within the cell site. The sensor data and non-GPS networkdata are converged when a plurality of corresponding scans produceoverlapping results.

FIG. 1 illustrates a plurality of meaningful locations 100 of anexemplary user of a MCD. The plurality of meaningful locations 100 of auser of a MCD can include a home location 100, a work location 120, anda school location 125. Other possible locations are shown as well, forexample library, parent's home, bookstore, church, soccer field, and asupplier's location. These locations are exemplary in nature and are notfully exhaustive. However, these locations make up a user's week in thatthey account for a percentage of the user's available time during week130. A correlation of the time and frequency of where the user spendstheir time with the MCD in their possession can enable a determinationof ‘meaningful locations’ for that user. These meaningful locations arealso termed “preferred locations”.

FIG. 2 illustrates data about multiple locations that can be analyzed todetermine the MCD user's preference regarding the location. The data isshown to be categorized into activities, type of communication network,type of connected peripherals to the MCD, and who the MCD may becommunicatively connected to. Specifically, the activities category caninclude time, transitions from one activity to another (e.g., switchingfrom texting to gaming), application usage (e.g., barcode scanning,music playing, movie database lookup, gaming, sports video playing,etc.), call or short messaging service (e.g., dialer, text messaging,social networking, etc.).

The communication networks category can include type of communicationnetwork, cellular identification, signal quality, and received signalstrength indicator, for example. The peripheral category can includewireless local area networks and wireless metro area networks based onIEEE 802.11 standards, including Wi-Fi, for example; Bluetooth, digitalliving network alliance (DLNA), docks, and chargers. The database mayalso categorize the name of businesses, who the MCD communicativelyconnected to, primary and secondary residences, workplaces, and commerceestablishments that the MCD user often interacts with.

The database in FIG. 2 is an example and therefore can include eithermore or less data in different hierarchical or nonhierarchicalstructures. The database enables optimization of battery life for theMCD and optimized network usage. This is accomplished by relying on thecaptured demographic data within the database to predict movement of theMCD between preferred or meaningful locations. Additionally, thedatabase may be a basis for predictions associated with Wi-Fi usage orbattery charging, for example. Other innovative MCD features can bederived that may affect automation, discovery, and social aspects of theMCD.

FIG. 3 illustrates a situation when the MCD user is between twooverlapping cellular areas (i.e., “cells”). The MCD may periodically orintermittently switch connectivity from one cellular tower to the othercellular tower even though the MCD is itself relatively stationary. Thisphenomenon is sometimes referred to as “cell bouncing”, and has beenshown to cause significant current drain upon the battery of the MCD,because several locations are attempting to be captured at once.

FIG. 4 illustrates a flowchart 400 that alleviates the “cell bouncing”phenomenon. Upon a cell change 410, an inquiry 420 determines whetherthe current cell connected to the MCD is in a bouncing cache. If thecurrent cell connected to the MCD is in a bouncing cache, then a secondinquiry 430 determines whether a location monitor timer is active. Ifthe location monitor timer is not active, then in operation 433 a decaytimer is stopped for the current cell and a decay timer is started forthe previous cell. Otherwise, where a location monitor timer remainsactive all bouncing cache operations cease.

For inquiry 420, if the current cell connected to the MCD is not in abouncing cache, a third inquiry 440 determines whether the locationmonitor timer is active. An affirmative answer to inquiry 440 leads tooperation 443 that adds the current cell to a bouncing cache andrestarts the location monitor timer. A bouncing cache herein includesthe cache of cells that the user is frequently changing to due to radiofrequency nature of mobile technology when the user is in areas shown inFIG. 3. These cell changes occur periodically even though the MCD is notmoving and the “Bouncing Cache” includes the list of cells the MCDswitches to without actually moving. A negative answer to inquiry 440leads to operation 447 that empties the bouncing cache before adding thecurrent cell to the now emptied bouncing cache. In short, when alocation monitor timer expires, then a location is captured and decaytimers are started for all cells except the current cell in the bouncingcache.

FIG. 5 illustrates the situation when a MCD user is in a cellular area(herein referred to as “cell”) and WiFi is used as a Network Locationprovider. If WiFi is turned off by the user, the location accuracy maynot be perfect. Also, the accuracy provided by GPS may be greater, butGPS data is avoided in the present algorithm, because of its negativeimpact upon current usage. The novel solution described herein leverageswhen the user has connected the device to a charger. Thereafter, whenthe MCD is in charging mode, instructions are given to:

-   -   Turn on WiFi, if it is not turned ON    -   Turn on GPS, if it is not turned ON    -   Capture the location with the best possible accuracy

FIG. 6 illustrates the situation when the same location gets differentsensorial data at different times. For example, Location 1 sees Cell 1,Cell 2, via WiFi 1, WiFi 2 on Day 1. The same location sees Cell 1 &WiFi 1 only on day 2. Given the overlap of Cell 1 and WiFi 1 on bothdays, the locations are thereafter converged and treated as the samelocation as opposed to different locations. The WiFi points are used forthe convergence.

FIG. 7 illustrates a timing diagram 700, wherein at T₀ the MCD userarrives at a location. From T₁-T₀ a location monitor timer filters outany transients. Whereas, between T₂-T₁, the amount of time a user spendsat a particular location is derived.

It should be appreciated that a described process may include any numberof additional or alternative tasks, the tasks shown in the figures neednot be performed in the illustrated order, and a described process maybe incorporated into a more comprehensive procedure or process havingadditional functionality not described in detail herein. Moreover, oneor more of the tasks shown in a figure could be omitted from anembodiment of the respective process as long as the intended overallfunctionality remains intact. While at least one exemplary embodimenthas been presented in the foregoing detailed description, it should beappreciated that a vast number of variations exist. It should also beappreciated that the exemplary embodiment or embodiments describedherein are not intended to limit the scope, applicability, orconfiguration of the claimed subject matter in any way. Rather, theforegoing detailed description will provide those skilled in the artwith a convenient road map for implementing the described embodiment orembodiments. It should be understood that various changes can be made inthe function and arrangement of elements without departing from thescope defined by the claims, which includes known equivalents andforeseeable equivalents at the time of filing this patent application.

It will be appreciated that some embodiments may be comprised of one ormore generic or specialized processors (or “processing devices”) such asmicroprocessors, digital signal processors, customized processors andfield programmable gate arrays (FPGAs) and unique stored programinstructions or code (including both software and firmware) that controlthe one or more processors to implement, in conjunction with certainnon-processor circuits, some, most, or all of the functions of themethod and/or apparatus described herein. Alternatively, some or allfunctions could be implemented by a state machine that has no storedprogram instructions, or in one or more application specific integratedcircuits (ASICs), in which each function or some combinations of certainof the functions are implemented as custom logic. Of course, acombination of the two approaches could be used.

Moreover, an embodiment can be implemented as a non-transitory machinereadable storage device or medium having computer readable code storedthereon for programming a computer (e.g., comprising a processor) toperform a method as described and claimed herein. Examples of suchnon-transitory machine readable storage devices or mediums include, butare not limited to, a hard disk, a CD-ROM, an optical storage device, amagnetic storage device, a ROM (Read Only Memory), a PROM (ProgrammableRead Only Memory), an EPROM (Erasable Programmable Read Only Memory), anEEPROM (Electrically Erasable Programmable Read Only Memory) and a Flashmemory. Further, it is expected that one of ordinary skill,notwithstanding possibly significant effort and many design choicesmotivated by, for example, available time, current technology, andeconomic considerations, when guided by the concepts and principlesdisclosed herein will be readily capable of generating such softwareinstructions and programs and ICs with minimal experimentation.

The Abstract of the Disclosure is provided to allow the reader toquickly ascertain the nature of the technical disclosure. It issubmitted with the understanding that it will not be used to interpretor limit the scope or meaning of the claims. In addition, in theforegoing Detailed Description, it can be seen that various features aregrouped together in various embodiments for the purpose of streamliningthe disclosure. This method of disclosure is not to be interpreted asreflecting an intention that the claimed embodiments require morefeatures than are expressly recited in each claim. Rather, as thefollowing claims reflect, inventive subject matter lies in less than allfeatures of a single disclosed embodiment. Thus the following claims arehereby incorporated into the Detailed Description, with each claimstanding on its own as a separately claimed subject matter.

We claim:
 1. A method performed by a wireless device, comprising:determining that mobile communication device (MCD) is transmitting acell site change; determining whether the MCD is currently in a cellsite that has been placed in a bouncing cache; determining whether alocation monitor timer is active, if the current cell site is not in thebouncing cache; adding the current cell site within the bouncing cacheand restarting the location monitor timer, if the location monitor timeris active; emptying the bouncing cache and placing the current cell sitewithin the bouncing cache, if the location monitor timer is inactive;and determining whether the MCD is stationary within a cell site basedat least in part on whether the location monitor timer is active orinactive.
 2. The method according to claim 1, wherein if the currentcell site is determined to be within a bouncing cache: determiningwhether the location monitor timer is active; and stopping a decay timerfor the current cell site if the location monitor timer is inactive. 3.The method according to claim 1, further comprising: capturing locationdata; and starting a decay timer for all received cell sites except thecurrent cell site within the bouncing cache.
 4. The method according toclaim 3, further comprising: removing the current cell site from thebouncing cache when a decay timer expires.
 5. The method of claim 2,further comprising: starting the decay timer for a previously found cellsite if the location monitor timer is inactive.
 6. The method accordingto claim 1, further comprising: capturing a location including all thecell sites in the bouncing cache when the location monitor timerexpires.
 7. A method performed by a wireless device, comprising:determining that a mobile communication device (MCD) is transmitting acell site change; determining whether the MCD is currently in a cellsite that has been placed in a bouncing cache, wherein if the currentcell site is determined to be within a bouncing cache: determiningwhether the location monitor timer is active; and stopping a decay timerfor the current cell site if the location monitor timer is inactive;determining whether a location monitor timer is active, if the currentcell site is not in the bouncing cache; adding the current cell sitewithin the bouncing cache and restarting the location monitor timer, ifthe location monitor timer is active; and emptying the bouncing cacheand placing the current cell site within the bouncing cache, if thelocation monitor timer is inactive.
 8. The method of claim 7, furthercomprising: starting the decay timer for a previously found cell site ifthe location monitor timer is inactive.
 9. The method according to claim7, further comprising: capturing a location including all the cell sitesin the bouncing cache when the location monitor timer expires.
 10. Amethod performed by a wireless device, comprising: determining that amobile communication device (MCD) is transmitting a cell site change;determining whether the MCD is currently in a cell site that has beenplaced in a bouncing cache; determining whether a location monitor timeris active, if the current cell site is not in the bouncing cache; addingthe current cell site within the bouncing cache and restarting thelocation monitor timer, if the location monitor timer is active;emptying the bouncing cache and placing the current cell site within thebouncing cache, if the location monitor timer is inactive; capturinglocation data; and starting a decay timer for all received cell sitesexcept the current cell site within the bouncing cache.
 11. The methodaccording to claim 10, further comprising: removing the current cellsite from the bouncing cache when a decay timer expires.